import matplotlib.pyplot as plt
import numpy as np
import time

# 导入中文字体
plt.rcParams['font.sans-serif'] = ['SimHei']  # 使用黑体
# 解决负号 '-' 显示为方块的问题
plt.rcParams['axes.unicode_minus'] = False


# 初始化图表
plt.ion()  # 开启交互模式
fig, ax = plt.subplots()

x = np.linspace(0, 2 * np.pi, 100)
y = np.sin(x)

line, = ax.plot(x, y, label='sin(x)')  # 初始图形及图例

legend = ax.legend(loc='upper right')  # 初始化图例

# 动态更新图表
for i in range(50):
    y = np.sin(x + i / 10.0)
    line.set_ydata(y)  # 更新 Y 轴数据
    ax.set_title(f"当前帧: {i}")  # 更新标题
    legend.set_title(f"帧数 {i}")  # 动态更新图例标题
    fig.canvas.draw()  # 重新绘制图表
    fig.canvas.flush_events()  # 刷新图表显示
    time.sleep(0.1)  # 模拟数据变化的时间间隔

plt.ioff()  # 关闭交互模式
plt.show()  # 显示最终图表